package controler;
import java.util.Date;
import java.util.Vector;
import java.sql.*;

import entity.OcorrenciaRelatorio;


public class  ListaRelatorios {

	static Vector<OcorrenciaRelatorio>  ListaOcorrencias ; 	

	
	public static Vector<Integer> listarDatasDisponiveis() { 
		Vector<Integer> data = new Vector<Integer>();
		
		try {
			PreparedStatement comandoSQL = ConnectionManager.getConnection().prepareStatement("SELECT data FROM logs");
			ResultSet datasbd = comandoSQL.executeQuery();
			while(datasbd.next()){
				data.add(datasbd.getInt(1));
			}
			
			
		} catch (Exception e) {
			return null;
		}
		
		return data;
				
	}
	
	public static boolean adicionarEntrada (String entrada, int data) {
		try{
			PreparedStatement comandoInsert = ConnectionManager.getConnection().prepareStatement("INSERT INTO logs VALUES(?, ?)");
			comandoInsert.setString(1, entrada);
			comandoInsert.setInt(2, data);
			comandoInsert.executeUpdate();
		}
		catch (Exception e){
			return false;
		}
		return true;	
	}
	
	public static Vector<OcorrenciaRelatorio> lerRelatorio(int datainicial, int datafinal) {
		
		Vector<OcorrenciaRelatorio> relatorio = new Vector<OcorrenciaRelatorio>();	
		try{
			PreparedStatement comandoSQL = ConnectionManager.getConnection().prepareStatement("SELECT message, data FROM logs");
			ResultSet respostabd = comandoSQL.executeQuery();
			
			while(respostabd.next()){
				OcorrenciaRelatorio temp = new OcorrenciaRelatorio(respostabd.getInt(2), respostabd.getString(1));
				relatorio.add(temp);
			}
			
		}
		catch (Exception e){
		return null;
		}
		
		return relatorio;	
		}
	
	static boolean displayListaOcorrencias() {  // afficher tous les elements type occurence de la listaoccorencias
		
		System.out.println("Lista de Ocorrencias do Relatorio");
		
		if (!(ListaOcorrencias.isEmpty())) { 

		for ( int i=0; i<(ListaOcorrencias.size()); i++)
			System.out.println("Data: " + ListaOcorrencias.elementAt(i).getData() + " | Evento: " + ListaOcorrencias.elementAt(i).getAction());
		return true; }
		else {
			System.out.println("Nenhum evento na lista de Ocorrencias");
			return false;
		
		}
	}
	
	boolean displayListaDatas() {  // afficher tous les elements de la liste de dates
		
		Vector<Integer> ld = listarDatasDisponiveis();
		System.out.println("Datas Disponiveis" );
		
		
		if (!(ld.isEmpty())) { 

		for ( int i=0; i<(ld.size()); i++)
			System.out.println("Data "+i+": " + ld.elementAt(i) );
		return true; }
		else {
			System.out.println("Nenhum elemento na lista de Datas");
			return false;
		
		}
	}
	
	
	
}